\begin{tikzpicture}

	\tikzstyle{treenode} = [component, path fading=flow fade, align=center,
	                        rounded corners=1, minimum width=10ex,
	                        minimum height=5ex]

	\definecolor{iemccolor}       {rgb} {0.9,0.6,0.7}
	\definecolor{recompilercolor} {rgb} {0.7,0.9,0.6}
	\definecolor{hwacccolor}      {rgb} {0.6,0.7,0.9}


	%
	% Components
	%

	\node[treenode, align=center, circle] (em) {Execution\\Manager};

	\path (em)+(140:15ex) node[treenode, inner sep=4ex, regular polygon, regular polygon sides=5,
	                         shape border rotate=90+140,
	                         inner color=white, outer color=recompilercolor] (recompiler) {};
	\path (recompiler) node {Recompiler};

	\path (em)+(140+120:15ex) node[treenode, inner sep=4ex, regular polygon, regular polygon sides=5,
	                         shape border rotate=90+140+120,
	                         inner color=white, outer color=iemccolor, opacity=0.3] (iem) {};
	\path (iem) node[align=center, opacity=0.3] {Instruction\\Emulator};

	\path (em)+(140+240:15ex) node[treenode, inner sep=4ex, regular polygon, regular polygon sides=5,
	                         shape border rotate=90+140+240,
	                         inner color=white, outer color=hwacccolor,
	                         opacity=0.3] (hwacc) {};
	\path (hwacc) node[align=center, opacity=0.3] {Hardware\\Acceleration};


	%
	% Transitions
	%

	\node[fit=(iem) (recompiler) (hwacc)] (outline) {};
	\path (outline.south)+(0,-2ex) coordinate (belowvmproc) {};

	\path[arrow, densely dashed] (recompiler.280) .. controls +(40+240:5ex) and +(320+240:5ex) .. (em.320+240);

	\path[arrow, densely dashed] (em.60) .. controls +(60:5ex) and +(0:5ex) .. (recompiler.0);

	\path[arrow, densely dashed] (em.200) .. controls +(200+180:5ex) and +(60+180:5ex) .. (em.60);

\end{tikzpicture}
